<?php
/**
 * 汇友科技
 * @copyright (c) 2017 http://www.huiyou365.net All rights reserved.
 * @author: Creatint <creatint@163.com>
 */

namespace Home\Model;

use Common\Model\Model;
use Think\Page;

class ItemModel extends Model{
    /**
     * 根据Request进行一次查询，返回this.
     *
     * @return $this
     */
//    public function get($request){
//
//        // 构造查询条件
//        $map = '';
//        foreach ( $request as $key => $value ) {
//            if ( $value && 'key'!=$key){
//                $map[$key] = $value;
//            } else if ( $value && 'key'==$key ){
//                // 模糊查询
//                $map['title'] = array('like',"%{$value}%");
//            }
//        }
//
//        // 进行查询
//        $this->lists = $this
//            ->where($map)
//
//            // 排序方式：最新审核的排在前面 -> 最新修改的排在前面
//            ->order('reviewed_at DESC, updated_at DESC')
//
//            // 对数据分页
//            ->page(I('get.p',0) . ',' . C('PAGE_LIST_ROWS'))
//
//            ->select();
//
//        // 获取符合map的总条数
//        $count = $this->where($map)->count();
//
//        // 获取分页实例
//        $this->page = show_page(new Page($count, C('PAGE_LIST_ROWS')));
//
//        return $this;
//    }

    public function position($pos = null, $limit = null, $field = null, $status = 1){

        // 查询条件
        $map = $this->map($status, $pos);
        // 设置列表数量
        is_numeric($limit) && $this->limit($limit);

        // 进行查询
        $this->lists = $this
            ->where($map)
            ->order('updated_at DESC')
            ->select();

        return $this;
    }

    public function map($status = 1, $pos = null){
        $map = array();

        // 状态
        $map['status']  =   $status;

        // 推荐位
        if ( $pos >0 )
            $map[]  =   "position & {$pos} = {$pos}";

        return $map;
    }

    public function next( $info )
    {
        $map = array(
            'status'    =>  1,
            'updated_at'  =>  array('lt', $info['updated_at'])
        );
        $res = $this->where($map)->find();

        return $res;
    }
    public function prev( $info )
    {
        $map = array(
            'status'    =>  1,
            'updated_at'  =>  array('gt', $info['updated_at'])
        );
        $res = $this->where($map)->find();
        return $res;
    }



    public function getPage(){
        return $this->page;
    }

    public function getError(){
        return $this->error;
    }
}